SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TWDOCU_PROV_I01]
/*---------------------------------------------------------*/                              
/*---Empresa              : OFISIS S.A.                  --*/                              
/*---Cliente              : OFISIS S.A.                  --*/                              
/*---Sistema              : Tesoreria                    --*/                              
/*---M¸dulo               : Empresa                      --*/                              
/*---Programa             : Procedimiento para generar   --*/                              
/*---                       documentos                   --*/                                    
/*---Script               : ttproc_i.sql                 --*/                              
/*---Nombre SP            : SP_TCMOVI_BANC_I06           --*/                              
/*---Desarrollado por     : Aldo Escobar                 --*/                              
/*---Fecha Creaci¸n       : 03/03/2006                   --*/                              
/*---Base Datos           : Microsoft Sql Server         --*/                              
/*---Versi¸n              : 8.0                          --*/                              
/*---Invoca a SP          :                              - -*/                              
/*---------------------------------------------------------*/                              
/*---------------------------------------------------------*/                                           
/*---------------------------------------------------------*/                              
/*---------------------------------------------------------*/                              
/*---Comentarios                                         --*/                              
/*---                                                    --*/                              
/*---------------------------------------------------------*/                             
@ISCO_EMPR   TD_VC_002,                                  
@ISCO_USUA_MODI  TD_VC_008_USUA ,                           
@ISCO_UNID  TD_VC_003,          
@ISTI_OPCI  TD_VC_003                        
As                            
Declare                              
@CNNU_FILA   INTEGER    ,                            
@CSCO_PROV   TD_VC_020  ,                            
@CSTI_DOCU   TD_VC_003  ,                            
@CSNU_DOCU   TD_VC_020  ,                            
@CSCO_MONE   TD_VC_003  ,                            
@CSFE_EMIS   TD_VC_020  ,                 
@CSCO_COND_PAGO TD_VC_003,                           
@CSFE_VENC   TD_VC_020  ,                            
@CSFA_CAMB   TD_VC_005  ,                            
@CSST_PROV   TD_VC_003 ,                            
@CSTI_OPER   TD_VC_003  ,                            
@CSDE_OBSE   TD_VC_100  ,                            
@CSIM_AFEC   TD_VC_020  ,                            
@CSIM_INAF   TD_VC_020  ,                           
@CSCO_IMPU   TD_VC_003  ,                           
@CSIM_IMPU   TD_VC_020  ,                            
@CSIM_TOTA   TD_VC_020  ,                            
@CSCO_CNTA   TD_VC_020  ,                            
@CSTI_AUXI   TD_VC_001  ,                            
@CSCO_AUXI   TD_VC_020  ,                            
@CSCO_ORDE_SERV  TD_VC_020  ,              
@CSPO_DIST TD_VC_020,                           
@CSST_GRAV_NGRA    TD_VC_005  ,                           
@CSFE_PAGO TD_VC_020,                     
@CNFA_CAMB_REND  TD_VC_005,                
@CSST_SUJE_DETR  TD_VC_001,                
@CSCO_ACTI_DETR  TD_VC_003,                     
                          
@VSNU_SERI_EXIS     TD_VC_004  ,                          
@VSTI_DOCU   TD_VC_001  ,                          
@VSST_SERI   TD_VC_001  ,                          
@VSNU_SERI_00  TD_VC_020  ,                            
@VSNU_SERI_01  TD_VC_020  ,                           
@VSNU_SERI_02  TD_VC_020  ,                          
@VSCO_PROV   TD_VC_020  ,                   
@VNNU_LONG   INTEGER   ,                          
@VSCO_MONE   TD_VC_003  ,                          
@VSFE_EMIS_DD  TD_VC_002  ,                          
@VSFE_EMIS_MM  TD_VC_002  ,                          
@VSFE_EMIS_AA  TD_VC_004  ,           
@VSTI_SITU_CXPA  TD_VC_003  ,                          
@VSST_CIER_CNTB  TD_VC_001  ,                          
@VSFE_VENC_DD  TD_VC_002  ,                      
@VSFE_VENC_MM  TD_VC_002  ,                          
@VSFE_VENC_AA  TD_VC_004  ,                          
@VSFA_CAMB_EVAL  TD_VC_010,                 
@VNFE_EMIS_AA   INTEGER,                        
@VNFE_EMIS_MM INTEGER,                        
                        
@VSFE_PAGO_DD TD_VC_002  ,                         
@VSFE_PAGO_MM TD_VC_002  ,                         
@VSFE_PAGO_AA TD_VC_004  ,                     
                      
@VSST_DOCU_0010 TD_VC_001,                      
                      
@VNNU_CONT_01 INTEGER,                        
                
@VSTI_OPRG_SIPR TD_VC_003,                        
                         
@VSCO_CNTA_EMPR  TD_VC_020,                      
@VSST_AUXI_EMPR  TD_VC_001,                        
@VSST_DOCU_CNTB  TD_VC_001,                        
@VSST_MONE   TD_VC_001,                    
@VSCO_MONE_CNTA  TD_VC_003,                        
@VSST_ORDE_SERV  TD_VC_001,                        
@VNNV_INFO_CNTA INTEGER,                        
@VSTI_AUXI_EMPR TD_VC_003,                        
@VSCO_AUXI_EMPR TD_VC_020,                        
@VSCO_ORDE_SERV TD_VC_020,                        
@VNNU_LONG_SERI  INTEGER,                        
@VNNU_ERRO  INTEGER,                        
@VSTI_OPRG_NOPR   TD_VC_003,                      
@VSST_PROV_AUTO TD_VC_001,                      
@VSCO_MONE_NACI TD_VC_003,                      
@VSCO_MONE_EXTR TD_VC_003,                    
@VSST_CIER_CNT1  TD_VC_001,                    
@VSST_CIER_CNT2 TD_VC_001,                
@VSST_LOGI      TD_VC_001,                
@VNNU_ERRO_FINA TD_IN_001,          
@VSTI_OPNI_CARG TD_VC_003,          
@VSTI_OPNI_ABON TD_VC_003,          
@VSCO_OPRC_CNTB TD_VC_003,          
@VSST_ASTO_RESU TD_VC_001,          
@VSST_SIER_CNT2 TD_VC_001,          
@VSST_HABI  TD_VC_001,          
@VSTI_OPCI      TD_VC_003,          
@VSCO_TIAU_PROV TD_VC_001,  
@VSCO_TIOP_CONF TD_VC_003                    
                           
                           
Begin Tran SP_TWDOCU_PROV_I01                              
                              
DELETE #TWDOCU_ERRO_02                          
--DELETE #TWDOCU_ERRO_02_1                          
DELETE #TWDOCU_ERRO_03                 
          
SELECT @VSTI_OPCI = @ISTI_OPCI          
          
Select  @VSST_PROV_AUTO = ST_PROV_AUTO, @VSTI_OPRG_SIPR =  TI_OPRG_SIPR,                      
@VSCO_MONE_NACI = CO_MONE_DEFA, @VSCO_MONE_EXTR = CO_MONE_EXTR, @VSST_LOGI = ST_LOGI,          
@VSTI_OPNI_CARG = CO_TIPO_OPER, @VSTI_OPNI_ABON = CO_TIPO_OPEG, @VSCO_TIAU_PROV = CO_TIAU_PROV                      
From TMPARA_TESO                            
 Where CO_EMPR = @ISCO_EMPR                          
                              
Declare CU_TWDOCU_PROV_I01_02 Cursor For                              
SELECT NU_FILA, CO_PROV, TI_DOCU, NU_DOCU, CO_MONE, FE_EMIS, CO_COND_PAGO, FE_VENC,                            
FA_CAMB, ST_PROV, TI_OPER, DE_OBSE, IM_AFEC, IM_INAF, CO_IMPU,IM_IMPU, IM_TOTA,                          
CO_CNTA, TI_AUXI, CO_AUXI, CO_ORDE_SERV   , PO_DIST, ST_GRAV_NGRA  , FE_PAGO , FA_CAMB_REND, ST_SUJE_DETR,                
CO_ACTI_DETR                        
FROM  #TWDOCU_ERRO_01                                
                             
                             
Open  CU_TWDOCU_PROV_I01_02                               
Fetch CU_TWDOCU_PROV_I01_02                               
Into  @CNNU_FILA, @CSCO_PROV, @CSTI_DOCU, @CSNU_DOCU, @CSCO_MONE, @CSFE_EMIS, @CSCO_COND_PAGO,                
@CSFE_VENC, @CSFA_CAMB, @CSST_PROV, @CSTI_OPER, @CSDE_OBSE, @CSIM_AFEC, @CSIM_INAF, @CSCO_IMPU,   
@CSIM_IMPU, @CSIM_TOTA, @CSCO_CNTA, @CSTI_AUXI, @CSCO_AUXI, @CSCO_ORDE_SERV    , @CSPO_DIST, @CSST_GRAV_NGRA ,                
@CSFE_PAGO  , @CNFA_CAMB_REND, @CSST_SUJE_DETR, @CSCO_ACTI_DETR                    
                              
While (@@FETCH_STATUS = 0)                                
 Begin                
   If (@@FETCH_STATUS < 0)                                
    Begin                                
     RAISERROR 20001 'FIN DE ARCHIVO'                                
  Close CU_TWDOCU_PROV_I01_02                                
  Deallocate CU_TWDOCU_PROV_I01_02            
  Rollback tran                                
  Return                                
 End                                
                          
                          
                          
----INICIALIZACIONES                              
 select @VSCO_PROV  = NULL                          
 select @VSTI_DOCU  = NULL             
 select @VSST_SERI  = NULL             
 --SELECT @VSST_CIER_CNT2 = NULL                         
                           
 select @VSNU_SERI_00 =NULL                          
 select @VSNU_SERI_01 = NULL                          
 select @VSNU_SERI_02 = NULL                          
 select @VSNU_SERI_EXIS = NULL                          
 SELECT @VNNU_LONG  = 0                         
 SELECT @VSCO_MONE  = NULL                          
 SELECT @VSCO_AUXI_EMPR = NULL                        
                          
 SELECT @VNNU_ERRO = 0                        
                          
  -------VALIDACIONES -------                             
                           
   ---  PROVEEDOR  ---                          
 IF ISNULL(@CSCO_PROV,'') = ''                          
                           
  INSERT INTO #TWDOCU_ERRO_02( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
@CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CÓDIGO DE PROVEEDOR NO PUEDE SER NULO' )                          
                           
 ELSE                          
 BEGIN                          
                            
  IF ( LEN(@CSCO_PROV)< 11 )                          
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
     DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                           
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE CÓDIGO PROVEEDOR INCORRECTO')                          
   ELSE                           
     BEGIN                          
                       
       IF @VSST_LOGI = 'S'                                  
        BEGIN                                      
  SELECT @VSCO_PROV = CO_PROV, @VSST_HABI = ST_PROV_NOHA               
  FROM  OFILOGI..TMPROV                                       
  WHERE CO_EMPR = @ISCO_EMPR                                       
  AND CO_PROV = @CSCO_PROV                
  AND TI_SITU != 'ANU'                                      
    END                           
       ELSE                             
       BEGIN                                      
  SELECT @VSCO_PROV = CO_PROV, @VSST_HABI = ST_HABI                                       
  FROM  TMPROV_TESO                                       
  WHERE CO_EMPR = @ISCO_EMPR                                       
  AND CO_PROV = @CSCO_PROV                                      
  AND TI_SITU != 'ANU'        
       END                                   
                       
                      
       IF ISNULL(@VSCO_PROV,'') = ''                             
                      
         INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
         VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,'PROVEEDOR NO EXISTE O SE ENCUENTRA INACTIVO')           
             
    ELSE IF ISNULL(@VSCO_PROV,'') != '' AND ISNULL(@VSST_HABI,'N') = 'S'            
              
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
         VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,'PROVEEDOR NO HABIDO')                       
                      
     END                              
                             
 END                          
                             
   ------------- TIPO DE DOCUMENTO -------------                          
   IF ISNULL(@CSTI_DOCU,'') = ''                          
  BEGIN                          
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE DOCUMENTO NO PUEDE SER NULO')                          
  END                          
   ELSE                          
  BEGIN                          
    IF LEN(@CSTI_DOCU) <> 3                           
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE TIPO DE DOCUMENTO INCORRECTO')                          
    ELSE                            
    BEGIN                            
    SELECT @VSTI_DOCU = TI_DOCU                               
    FROM  TTDOCU_CNTB                           
    WHERE TI_DOCU = @CSTI_DOCU                          
                              
   IF ISNULL(@VSTI_DOCU,'') = ''                             
                             
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE DOCUMENTO NO EXISTE')                          
   END                               
                               
   END                          
                             
                            
 ------------------ NUMERO DOCUMENTO ----------------------                          
  IF ISNULL(@CSNU_DOCU,'') = ''                          
  BEGIN                          
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'NUMERO DOCUMENTO NO PUEDE SER NULO')                          
  END                          
  ELSE                          
  BEGIN                          
        --CONF DEL TIPO  DOC                          
        SELECT @VSTI_DOCU = TI_DOCU, @VSST_SERI = ST_SERI, @VNNU_LONG = CASE WHEN NU_LONG = 0 THEN 20 ELSE NU_LONG END,                        
        @VNNU_LONG_SERI = NU_LONG_SERI                          
        FROM  TTDOCU_CNTB                           
        WHERE TI_DOCU = @CSTI_DOCU                           
                             
        IF @VSST_SERI  = 'S'                           
        BEGIN                           
          SELECT @VSNU_SERI_00 =  SUBSTRING(@CSNU_DOCU,1,@VNNU_LONG_SERI)                          
                                  
          SELECT @VSNU_SERI_EXIS = NU_SERI                          
          FROM TTDOSE_CORR                           
          WHERE CO_EMPR = @ISCO_EMPR AND                          
          TI_DOCU = @CSTI_DOCU AND                          
          NU_SERI = @VSNU_SERI_00                        
                                  
          IF ISNULL(@VSNU_SERI_EXIS,'') = ''                          
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'NUMERO DE SERIE INCORRECTO PARA EL TIPO DE DOCUMENTO')                         
                                  
          SELECT @VSNU_SERI_01 =  SUBSTRING(@CSNU_DOCU,@VNNU_LONG_SERI+1,1)                          
                                 
          IF  @VSNU_SERI_01 != '-'                           
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (                          
      @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
      @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'NUMERO DE DOCUMENTO DEBE LLEVAR SERIE')                          
                                 
                                 
          SELECT @VSNU_SERI_02 =  SUBSTRING(@CSNU_DOCU,@VNNU_LONG_SERI+2,20)                          
                             
    IF (LEN(@VSNU_SERI_02) != @VNNU_LONG)                          
        INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                
      VALUES (                          
      @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
      @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE NUMERO DE DOCUMENTO NO COINCIDE')                         
                                
        END --VSST_SERI = S                         
         --REVISAR VALIDACION --                          
   ELSE IF  @VSST_SERI  = 'N'                           
   BEGIN                          
                   
    SELECT @VSNU_SERI_02 =  SUBSTRING(@CSNU_DOCU,@VNNU_LONG_SERI+1,@VNNU_LONG)                          
                             
  IF (LEN(@VSNU_SERI_02) != @VNNU_LONG)                          
                               
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
     DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE NUMERO DE DOCUMENTO NO COINCIDE')                          
   END                           
   --LONGITUD  --VALIDAR!!!!!!!!!!!!!!!!!!!!!11                          
                            
      
  END                              
                              
   ----------------------------------MONEDA----------------------------------                          
                             
                           
                             
   IF ISNULL(@CSCO_MONE,'') = ''                          
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
     DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO MONEDA NO PUEDE SER NULO ')                          
   ELSE                        
     IF NOT EXISTS ( SELECT *                           
     FROM TTMONE                           
     WHERE  CO_MONE = @CSCO_MONE )                        
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
       DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
       VALUES (                          
       @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
       @CSFE_EMIS  ,  @CSFE_VENC ,                            
       @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
       @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                        
       @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO MONEDA NO CONFIGURADO ')                          
                             
                     
   -----------------------------FECHA EMISION----------------------------------                          
   SELECT @VSFE_EMIS_DD =  SUBSTRING(@CSFE_EMIS,1,2)                          
   SELECT @VSFE_EMIS_MM =  SUBSTRING(@CSFE_EMIS,4,2)                          
   SELECT @VSFE_EMIS_AA =  SUBSTRING(@CSFE_EMIS,7,4)                          
                            
      /*                      
   SELECT @VNFE_EMIS_AA    = CONVERT(INTEGER,@VSFE_EMIS_AA)                        
  SELECT @VNFE_EMIS_MM    = CONVERT(INTEGER,@VSFE_EMIS_MM)  */                      
                      
                          
 IF ISNULL(@CSFE_EMIS,'') = ''                          
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE EMISION NO PUEDE SER NULO ')                           
                           
     ---TC                          
   IF @VSFE_EMIS_MM > '12' OR  @VSFE_EMIS_MM < '01' AND  ISNULL(@CSFE_EMIS,'') != ''                       
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'RANGO DEL MES INCORRECTO')                 
            
                           
                           
                            
                            
  ----------------------------------CONDICION PAGO----------------------------------                                      
                                          
   IF ISNULL(@CSCO_COND_PAGO,'') = ''                                 
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO)                                       
     VALUES (                                      
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV  ,  'CODIGO CONDICION PAGO NO PUEDE SER NULO ')                                      
   ELSE                                    
     IF NOT EXISTS ( SELECT *                                  
     FROM TTTIPO_COND                                       
     WHERE  CO_EMPR = @ISCO_EMPR                            
     AND CO_COND_PAGO = @CSCO_COND_PAGO )                                    
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                                       
       VALUES (                                      
       @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV  ,  'CODIGO CONDICION PAGO NO EXISTE ')                          
                        
                        
                        
                   
           ----------------------------FECHA DE VENCIMIENTO ----------------------------------                          
   SELECT @VSFE_VENC_DD =  SUBSTRING(@CSFE_VENC,1,2)                          
   SELECT @VSFE_VENC_MM =  SUBSTRING(@CSFE_VENC,4,2)                          
   SELECT @VSFE_VENC_AA =  SUBSTRING(@CSFE_VENC,7,4)                          
   SELECT @VSTI_SITU_CXPA = NULL                          
   SELECT @VSST_CIER_CNTB = NULL                          
                     
                      
   IF ISNULL(@CSFE_VENC,'') = ''                          
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
 DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
 VALUES (              
 @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
 @CSFE_EMIS  ,  @CSFE_VENC ,                            
 @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,          
 @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE VENCIMIENTO NO PUEDE SER NULO ')            
           
  SELECT @VSTI_SITU_CXPA = TI_SITU_CXPA                          
  FROM TTPERI_CCCP                          
  WHERE CO_EMPR = @ISCO_EMPR                          
  AND AA_PERI = CONVERT(INTEGER,@VSFE_VENC_AA)                          
  AND MM_PERI = CONVERT(INTEGER,@VSFE_VENC_MM)                           
                           
  IF ISNULL(@VSTI_SITU_CXPA,'') != ''            
    BEGIN          
    IF @VSTI_SITU_CXPA != 'ACT'                          
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (           
      @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
      @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'PERIODO SE ENCUENTRA CERRADO')                           
    END          
  ELSE          
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (                          
      @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
      @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'PERIODO NO SE ENCUENTRA APERTURADO')          
                        
         ---ALL                    
 IF @CSFE_VENC < @CSFE_EMIS                     
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
 DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
 VALUES (                          
 @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
 @CSFE_EMIS  ,  @CSFE_VENC ,                            
 @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
 @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE VENCIMIENTO NO PUEDE MENOR A LA FECHA DE EMISION ')                      
                      
 IF @VSFE_VENC_MM > '12' OR @VSFE_VENC_MM < '01'                          
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU , @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'RANGO DEL MES INCORRECTO')          
          
 IF @CSTI_OPER != @VSTI_OPNI_CARG AND @CSTI_OPER != @VSTI_OPNI_ABON           
 BEGIN           
   
  Select @VSCO_TIOP_CONF = CO_TIPO_OPER          
  From TDTIPO_OPER          
  Where CO_EMPR = @ISCO_EMPR          
  And   CO_TIPO_OPER = @CSTI_OPER            
   
  IF ISNULL(@VSCO_TIOP_CONF,'') = ''   
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACIÓN NO ESTÁ CONFIGURADO')           
  ELSE  
  BEGIN  
     
   IF NOT EXISTS (Select ISNULL(T1.CO_OPRC_CNTB,''), T3.ST_ASTO_RESU, T2.ST_CIER_CNTB                    
   From TDTIPO_OPER T1 ,TCFECH_PROC T2, TMOPRC_RESU T3                    
   Where T1.CO_EMPR = @ISCO_EMPR                    
   And T1.CO_TIPO_OPER = @CSTI_OPER                    
   And T1.CO_EMPR = T2.CO_EMPR                    
   And T2.NU_CNTB_EMPR = 1                    
   And T2.CO_UNID_CNTB = @ISCO_UNID                    
   And T1.CO_OPRC_CNTB = T2.CO_OPRC_CNTB                    
   And T2.NU_ANNO = CONVERT(INTEGER,@VSFE_VENC_AA)                    
   And T2.NU_MESE = CONVERT(INTEGER,@VSFE_VENC_MM)                    
   And T1.CO_EMPR = T3.CO_EMPR                    
   And T1.CO_OPRC_CNTB = T3.CO_OPRC_CNTB)          
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LIBRO CONTABLE NO ESTA APERTURADO')   
   ELSE   
   BEGIN  
      
    Select @VSCO_OPRC_CNTB = MAX(ISNULL(T1.CO_OPRC_CNTB,'')),@VSST_ASTO_RESU = MAX(T3.ST_ASTO_RESU), @VSST_CIER_CNT2 = MAX(T2.ST_CIER_CNTB)                     
    From TDTIPO_OPER T1 ,TCFECH_PROC T2, TMOPRC_RESU T3                    
    Where T1.CO_EMPR = @ISCO_EMPR                    
    And T1.CO_TIPO_OPER = @CSTI_OPER                    
    And T1.CO_EMPR = T2.CO_EMPR                    
    And T2.NU_CNTB_EMPR = 1                    
    And T2.CO_UNID_CNTB = @ISCO_UNID                    
    And T1.CO_OPRC_CNTB = T2.CO_OPRC_CNTB                    
    And T2.NU_ANNO = CONVERT(INTEGER,@VSFE_VENC_AA)                    
    And T2.NU_MESE = CONVERT(INTEGER,@VSFE_VENC_MM)                    
    And T1.CO_EMPR = T3.CO_EMPR                    
    And T1.CO_OPRC_CNTB = T3.CO_OPRC_CNTB          
               
    IF @VSST_SIER_CNT2 = 'S'  
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LIBRO CONTABLE NO ESTA APERTURADO')          
    ELSE            
    BEGIN          
     IF @VSST_CIER_CNT2 = 'S'                          
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (                          
      @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
      @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'PERIODO CONTABLE PARA OPERACIÓN '+@VSCO_OPRC_CNTB+' ESTA CERRADO')           
     ELSE          
      IF @VSST_ASTO_RESU = 'N' AND @VSCO_OPRC_CNTB = ''          
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
       DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
       VALUES (                          
       @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
       @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
       @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
       @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LIBRO CONTABLE NO ESTA APERTURADO')                     
    END  
   END           
  END          
 END              
             
          
              
                      
                             
 -----------------------FACTOR DE CAMBIO ----------------------------------------                          
 SELECT @VSFA_CAMB_EVAL =  SUBSTRING(@CSFA_CAMB,2,1)                          
   IF @VSFA_CAMB_EVAL != '.'                          
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FACTOR DE CAMBIO INCORRECTO .')                          
                        
  -------- <=0                      
  IF CONVERT(NUMERIC(15,6),@CSFA_CAMB,0) <= 0                      
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                  
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FACTOR DE CAMBIO NO PUEDE SER MENOR O IGUAL A CERO .')                       
                      
                      
                      
   IF  ISNULL(@CSFA_CAMB,'') = ''                     
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FACTOR DE CAMBIO NO PUEDE SER NULO .')                          
                          
  --------------------STATUS PROVISION ------TI  OPER  ---------------------------------                          
                          
 IF ISNULL(@CSST_PROV,'')= ''                 
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION DE RENDICION  NO PUEDE SER VACIO')                          
 ELSE                        
   BEGIN                        
                    
     IF NOT EXISTS (SELECT *                        
     FROM TTTIPO_OPER                        
     WHERE CO_EMPR = @ISCO_EMPR                        
     AND CO_TIPO_OPER = @CSST_PROV )                        
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION DE RENDICION NO EXISTE')                          
  ELSE                        
    BEGIN                        
                                
    SELECT @VSTI_OPRG_SIPR = TI_OPRG_SIPR ,                        
     @VSTI_OPRG_NOPR = TI_OPRG_NOPR                         
    FROM TMPARA_TESO WHERE CO_EMPR = @ISCO_EMPR                        
                            
    IF @CSST_PROV !=  @VSTI_OPRG_SIPR AND @CSST_PROV != @VSTI_OPRG_NOPR                        
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (                          
      @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION DE RENDICION NO PARAMETRIZADO')                          
    END                        
   END                         
                          
                          
    --------------------TIPO DE OPERACION PARA TMDOCU_PROV  ---------------------------------                          
                          
 IF ISNULL(@CSTI_OPER,'')= ''                        
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION NO PUEDE SER VACIO')                          
 ELSE          
   BEGIN                        
     IF NOT EXISTS (Select  T2.DE_TIPO_OPER                
     From    TTTIPO_OPER T2                
     Where  T2.CO_EMPR = @ISCO_EMPR                
     And T2.CO_TIPO_OPER = @CSTI_OPER                
     And T2.TI_MOVI = 'C'                
     And T2.TI_SITU = 'ACT'                
     And Exists                
     (Select T1.CO_TIPO_OPER From TRTIOP_OPCI T1                
     Where T1.CO_EMPR = @ISCO_EMPR                
     And T1.CO_EMPR = T2.CO_EMPR                
     And T1.CO_TIPO_OPER = T2.CO_TIPO_OPER                
     And T1.CO_FORM = 'FTEEMBA') )                        
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
       DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
       VALUES (                          
       @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
       @CSFE_EMIS  ,  @CSFE_VENC ,                            
       @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
       @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
       @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION NO EXISTE')              
                 
     IF @CSTI_OPER != @VSTI_OPNI_CARG AND @CSTI_OPER != @VSTI_OPNI_ABON          
     AND NOT EXISTS (Select CO_TIPO_OPER          
  From  TDTIPO_OPER          
  Where CO_EMPR = @ISCO_EMPR          
  And   CO_TIPO_OPER = @CSTI_OPER )          
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
       DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
       VALUES (                          
       @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
       @CSFE_EMIS  ,  @CSFE_VENC ,                            
       @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
       @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
       @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION NO CONFIGURADO')          
             
   END          
              
                 
                 
              
                          
                    --------------------OBSERVACION---------------------------------                          
                          
 IF ISNULL(@CSDE_OBSE,'')= ''                        
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV , 'OBSERVACION NO PUEDE SER VACIO')                          
                         
                             
     --------------------IMPORTE AFECTO---------------------------------                          
                               
  ---AL                      
  IF  CONVERT(NUMERIC(16,4),@CSIM_AFEC)< 0             
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE AFECTO NO PUEDE SER NEGATIVO')                          
                        
  IF (ISNULL(@CSIM_AFEC,'') ='' AND  ISNULL(@CSIM_INAF,'') ='') OR (CONVERT(NUMERIC(16,4),@CSIM_AFEC)= 0 AND CONVERT(NUMERIC(16,4),@CSIM_INAF)= 0)                       
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FALTA INGRESAR IMPORTE DE DOCUMENTO')                          
                        
  IF (ISNULL(@CSIM_AFEC,'')= ''  AND ISNULL(@CSIM_IMPU,'')!='')                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE AFECTO NO PUEDE SER NULO')                          
                        
                        
                       
                           
   --------------------IMPORTE INAFECTO---------------------------------                     
      
  ---AL                      
  IF CONVERT(NUMERIC(16,4),@CSIM_INAF)< 0                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                 
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE INAFECTO NO PUEDE SER NEGATIVO')                        
                        
                          
  --------------------CODIGO IMPUESTO -------------------------------------                          
                         
   ---AL                      
  IF ISNULL(@CSIM_AFEC,'')!='' AND ISNULL(@CSIM_INAF,'')='' AND ISNULL(@CSCO_IMPU,'')=''                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                   
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FALTA INGRESAR CODIGO DE IMPUESTO')                         
                              
  IF ISNULL(@CSCO_IMPU,'')!='' AND NOT EXISTS(SELECT * FROM TTIMPT WHERE CO_IMPT = @CSCO_IMPU )                        
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO DE IMPUESTO NO EXISTE')                        
                        
  --AL                      
                          
  IF ISNULL(@CSIM_AFEC,'')='' AND  ISNULL(@CSIM_INAF,'')!='' AND ISNULL(@CSCO_IMPU,'')!=''                      
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO NO DEBE LLEVAR CODIGO DE IMPUESTO ')                        
                         
     IF ISNULL(@CSIM_AFEC,'')! ='' AND ISNULL(@CSCO_IMPU,'') =''                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO DEBE LLEVAR CODIGO DE IMPUESTO ')                        
                         
                      
                           
             
 ---------------------------- IMPORTE IMPUESTO ---------------------------------------                        
                        
  IF ISNULL(@CSIM_IMPU,'')!='' AND CONVERT(NUMERIC(16,4),@CSIM_IMPU)<0                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE IMPUESTO NO PUEDE SER NEGATIVO')                        
                        
                        
  IF ISNULL(@CSIM_AFEC,'')!='' AND ISNULL(@CSCO_IMPU,'')!='' AND ISNULL(@CSIM_IMPU,'')=''                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FALTA INGRESAR IMPORTE IMPUESTO')                        
                        
  IF ISNULL(@CSIM_INAF,'')!='' AND ISNULL(@CSIM_AFEC,'')='' AND ISNULL(@CSCO_IMPU,'')=''                      
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO NO DEBE LLEVAR IMPORTE IMPUESTO')                        
                        
 ---------------------------- IMPORTE TOTAL -------------AG IMP ES NUMERICO -----------------------                        
 IF ISNULL(@CSIM_TOTA,'') = '' OR CONVERT(NUMERIC(16,4),@CSIM_TOTA) = 0                        
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE TOTAL NO PUEDE SER VACIO O CERO')                          
                          
 ELSE                        
  BEGIN                         
   IF CONVERT(NUMERIC,@CSIM_TOTA)< 0                         
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                           
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA , @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE TOTAL NO PUEDE SER NEGATIVO')                         
                          
  --VAL                        
                        
   IF CONVERT(NUMERIC(16,4),@CSIM_TOTA) != ( CONVERT(NUMERIC(16,4),@CSIM_AFEC)+ CONVERT(NUMERIC(16,4),@CSIM_INAF)+ CONVERT(NUMERIC(16,4),@CSIM_IMPU) )                        
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE TOTAL INCORRECTO, SUMA NO COINCIDE')                          
  END                          
                         
                         
                      
                         
                      
 ---------------------------  CODIGO DE CUENTA -----------------------------------------                        
  Select   @VSCO_CNTA_EMPR = CO_CNTA_EMPR,                                
     @VSST_AUXI_EMPR = ST_AUXI_EMPR,                                
  @VSST_DOCU_CNTB = ST_DOCU_CNTB,                                
     @VSST_MONE   = ST_MONE ,                                     
     @VSCO_MONE_CNTA = CO_MONE ,                                
     @VSST_ORDE_SERV = ST_ORDE_SERV                                
     From   TMPLAN_EMPR                                
     Where  CO_EMPR      = @ISCO_EMPR                                
     And    CO_CNTA_EMPR = @CSCO_CNTA                                
     AND    TI_SITU = 'ACT'                           
                        
    SELECT @VNNV_INFO_CNTA = NV_INFO_CNTA                         
    FROM   TMPARA_CONT                        
  WHERE  CO_EMPR = @ISCO_EMPR                                 
                        
 IF ISNULL(@CSCO_CNTA,'')= ''                        
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CUENTA CONTABLE NO PUEDE SER NULO')                           
                         
 ELSE                         
 BEGIN                        
 IF ISNULL(@VSCO_CNTA_EMPR,'') = ''          
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CUENTA NO EXISTE O ESTA DESACTIVADA ' )                          
                               
    IF LEN(@VSCO_CNTA_EMPR) != @VNNV_INFO_CNTA                               
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                          
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CUENTA CONTABLE DEBE SER A NIVEL ANALITICO' )                              
 ---------------------------------- OS -----                        
                   
 IF @VSST_ORDE_SERV = 'S' and ISNULL(DATALENGTH(LTRIM(RTRIM(ISNULL(@CSCO_ORDE_SERV,'')))),0) = 0                                
  INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA LLEVA ORDEN DE SERVICIO'    )                        
                          
  IF @VSST_ORDE_SERV = 'N' and ISNULL(DATALENGTH(LTRIM(RTRIM(ISNULL(@CSCO_ORDE_SERV,'')))),0) > 0                                
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA NO LLEVA ORDEN DE SERVICIO' )                    
                    
                    
                          
     ------------AUX----------                        
   IF @VSST_AUXI_EMPR = 'N'                                
     BEGIN                            
   IF (@CSTI_AUXI Is Not Null Or @CSCO_AUXI Is Not Null)                                
   and (Ltrim(Rtrim(@CSTI_AUXI)) != '' Or Ltrim(Rtrim(@CSCO_AUXI)) != '')                                
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA NO LLEVA TIPO NI CÓDIGO AUXILIAR'    )                             
  END                         
   ELSE IF @VSST_AUXI_EMPR = 'S'                                
  BEGIN                                
     If (@CSTI_AUXI Is Null Or @CSCO_AUXI Is Null)                                
     Or (Ltrim(Rtrim(@CSTI_AUXI)) = '' Or Ltrim(Rtrim(@CSCO_AUXI)) = '')                                    
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
  @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA LLEVA TIPO Ó CÓDIGO AUXILIAR'   )                          
  END                            
      --------------------                        
                        
 END                         
  -------- --------------TIPO DE AUXILIAR--------------------------------------                        
                        
  If @CSTI_AUXI Is Not Null                                
  Begin                                
   Select @VSTI_AUXI_EMPR = TI_AUXI_EMPR                                
   From   TTAUXI_EMPR                                
   Where  CO_EMPR      = @ISCO_EMPR                                
   And    TI_AUXI_EMPR = @CSTI_AUXI                                
                                  
   If @VSTI_AUXI_EMPR Is Null                                
   Begin                             
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'TIPO DE AUXILIAR NO EXISTE'   )                          
 END                        
  END                          
  ----------------------CODIGO DE AUXILIAR--------------------------------------                        
 ----VALIDAR SI SE COLOCO AUXILIAR                        
  If @CSCO_AUXI Is Not Null                                
  Begin                                
    Select @VSCO_AUXI_EMPR = CO_AUXI_EMPR                                
    From   TMAUXI_EMPR                                
    Where  CO_EMPR      = @ISCO_EMPR                                
    And    TI_AUXI_EMPR = @CSTI_AUXI                              
    And    CO_AUXI_EMPR = @CSCO_AUXI                          
                            
   -- SELECT * FROM TMAUXI_EMPR WHERE CO_AUXI_EMPR = '10407621447'                               
                                  
   If ISNULL(@VSCO_AUXI_EMPR,'')=''                        
   Begin                             
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CODIGO DE AUXILIAR NO EXISTE O NO CORRESPONDE AL TIPO DE AUXILIAR'   )                          
 END                        
                         
  END                          
                          
    ---------------------ORDEN SERVICIO -------------------------------------                        
                        
 If @CSCO_ORDE_SERV Is Not Null and @VSST_ORDE_SERV = 'S'                                
  Begin                                
   Select @VSCO_ORDE_SERV = CO_ORDE_SERV                                
   From   TMORDE_SERV                                
   Where  CO_EMPR      = @ISCO_EMPR                                
   And    CO_ORDE_SERV = @CSCO_ORDE_SERV                 
                                  
   If Not Exists (  Select  CO_ORDE_SERV                                
   From   OFICONT..TMORDE_SERV                                
   Where  CO_EMPR      = @ISCO_EMPR                             
   And    CO_ORDE_SERV = @CSCO_ORDE_SERV )                                
   Begin                                
                             
   INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'ORDEN DE SERVICIO NO EXISTE'   )                          
 END                        
  END                         
  -----------------------ST_GRAV_NGRA--------------------------------------                        
                        
  If @CSST_GRAV_NGRA != 'S' AND @CSST_GRAV_NGRA != 'N'                         
  Begin                                
                              
 INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                      
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'STATUS DE VENTAS GRAVADAS Y NO GRAVADAS INCORRECTO'   )                          
  END             
                          
  ----------------------------FECHA DE PAGO ----------------------------------                          
   SELECT @VSFE_PAGO_DD =  SUBSTRING(@CSFE_PAGO,1,2)                          
   SELECT @VSFE_PAGO_MM =  SUBSTRING(@CSFE_PAGO,4,2)                          
   SELECT @VSFE_PAGO_AA =  SUBSTRING(@CSFE_PAGO,7,4)                          
                         
   Select  @VSST_DOCU_0010 = ST_DOCU_0010                      
   From TTDOCU_CNTB                      
   Where TI_DOCU = @CSTI_DOCU                      
                         
   IF @VSST_DOCU_0010 = 'S'                      
    BEGIN                          
     IF ISNULL(@CSFE_PAGO,'') = ''                          
      INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE PAGO NO PUEDE SER NULO ')                           
                              
      IF CONVERT(NUMERIC,@VSFE_PAGO_MM) > 12 OR  CONVERT(NUMERIC,@VSFE_PAGO_MM) < 1                          
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                 
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'RANGO DEL MES INCORRECTO')                          
  END                      
 ELSE                      
  SELECT @CSFE_PAGO = NULL                       
  -----------------------------------------------------------------------------                        
  -------------------------------SUJETO A DETRACCION-----------------------------------------                
  IF ISNULL(@CSST_SUJE_DETR,'')= ''                        
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'STATUS SUJETO A DETRACCION NO PUEDE SER VACIO')                   
   ELSE                
     IF @CSST_SUJE_DETR NOT IN ('S','N')                
       INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,           
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                     
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'SUJETO A DETRACCION SOLO PUEDE SER S O N')                 
                    
  ----------------------------ACTIVIDAD DETRACCION --------------------------------------                
                  
  IF @CSST_SUJE_DETR = 'S' AND ISNULL(@CSCO_ACTI_DETR,'') = ''                
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO DEBE LLEVAR ACTIVIDAD DE DETRACCION')                 
                    
   IF @CSST_SUJE_DETR = 'N' AND ISNULL(@CSCO_ACTI_DETR,'') != ''                
    INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO NO DEBE LLEVAR ACTIVIDAD DE DETRACCION')                  
                    
   IF @CSST_SUJE_DETR = 'S' AND ISNULL(@CSCO_ACTI_DETR,'') != ''                
    BEGIN                
                  
     IF NOT EXISTS (Select  DE_ACTI_DETR                
      From  TTACTI_DETR                
      Where  CO_ACTI_DETR = @CSCO_ACTI_DETR)                
        INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'ACTIVIDAD DE DETRACCION NO EXISTE')                  
                      
    END                
                    
   -------------------------VALIDA PROVISION------------------------------------                
                   
  IF @VSTI_OPCI = 'NRE'           
    BEGIN          
      IF EXISTS ( SELECT CO_PROV           
      FROM TMDOCU_PROV                            
      WHERE CO_EMPR = @ISCO_EMPR                            
      AND CO_PROV = @CSCO_PROV                            
      AND CO_TIPO_DOCU = @CSTI_DOCU                                AND NU_DOCU_PROV = @CSNU_DOCU)                              
        INSERT INTO #TWDOCU_ERRO_02 (  NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
        DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,               
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'DOCUMENTO PROVEEDOR YA SE ENCUENTRA PROVISIONADO')          
 END          
  ELSE          
    BEGIN          
      IF EXISTS (SELECT CO_EMPR          
      FROM TDREND_GAST          
      WHERE CO_EMPR = @ISCO_EMPR          
      AND   CO_UNID_CONC = @ISCO_UNID          
      AND   TI_ENTI = @VSCO_TIAU_PROV          
      AND   CO_ENTI = @CSCO_PROV          
      AND   CO_TIPO_DOCU = @CSTI_DOCU          
      AND   NU_DOCU_PROV = @CSNU_DOCU ) AND @CSST_PROV = @VSTI_OPRG_SIPR          
        INSERT INTO #TWDOCU_ERRO_02 (  NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
        DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'DOCUMENTO PROVEEDOR YA SE ENCUENTRA RENDIDO')          
    END             
                  
                  
   ---valida distribucion de documentos---  
   IF EXISTS(SELECT * FROM TDDISP_CCOS  
   WHERE CO_EMPR = @ISCO_EMPR  
   AND   CO_PROV = @CSCO_PROV  
   AND   CO_TIPO_DOCU = @CSTI_DOCU  
   AND   NU_DOCU_PROV = @CSNU_DOCU)  
    INSERT INTO #TWDOCU_ERRO_02 (  NU_FILA,CO_PROV,TI_DOCU,NU_DOCU,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,TI_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMPU,IM_IMPU,IM_TOTA,CO_CNTA,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_PROV ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'DOCUMENTO PROVEEDOR YA SE ENCUENTRA DISTRIBUIDO')                     
               
  ------------------------------------------INSERT FINAL---------------------------------------                        
                        
  SELECT @VNNU_ERRO = 0                        
                         
  SELECT @VNNU_ERRO = COUNT(*)                         
  FROM   #TWDOCU_ERRO_02                        
  WHERE  NU_FILA = @CNNU_FILA                        
  --INGRESA SI NO OBTUVO ERRORES EN ESA FILA                        
  IF @VNNU_ERRO = 0                        
   BEGIN                        
                          
  Insert Into #TWDOCU_ERRO_03                        
  ( NU_FILA,                        
  CO_PROV ,TI_DOCU , NU_DOCU ,  CO_MONE ,  FE_EMIS , CO_COND_PAGO, FE_VENC ,                          
  FA_CAMB ,  ST_PROV, TI_OPER ,  DE_OBSE,  IM_AFEC ,                          
  IM_INAF ,  CO_IMPU ,   IM_IMPU, IM_TOTA,  CO_CNTA,  TI_AUXI ,                          
  CO_AUXI ,  CO_ORDE_SERV , PO_DIST, ST_GRAV_NGRA , FE_PAGO, FA_CAMB_REND, ST_SUJE_DETR, CO_ACTI_DETR)                        
  values( @CNNU_FILA,                                 
    RTRIM(LTRIM(@CSCO_PROV)),                        
    RTRIM(LTRIM(@CSTI_DOCU)),                        
    RTRIM(LTRIM(@CSNU_DOCU)),                        
    RTRIM(LTRIM(@CSCO_MONE)),                        
    RTRIM(LTRIM(@CSFE_EMIS)),                
    RTRIM(LTRIM(@CSCO_COND_PAGO)),                        
    RTRIM(LTRIM(@CSFE_VENC)),                        
    CONVERT(NUMERIC(15,6),@CSFA_CAMB ),                        
    RTRIM(LTRIM(@CSST_PROV)),                        
    RTRIM(LTRIM(@CSTI_OPER)),                        
    RTRIM(LTRIM(@CSDE_OBSE)),                        
    CONVERT(NUMERIC(16,4),@CSIM_AFEC),                        
    CONVERT(NUMERIC(16,4),@CSIM_INAF),                        
    RTRIM(LTRIM(@CSCO_IMPU)),                        
    CONVERT(NUMERIC(16,4),@CSIM_IMPU),                        
    CONVERT(NUMERIC(16,4),@CSIM_TOTA),       
    RTRIM(LTRIM(@CSCO_CNTA)),                         
    RTRIM(LTRIM(@CSTI_AUXI)),                         
    RTRIM(LTRIM(@CSCO_AUXI)),                         
    RTRIM(LTRIM(@CSCO_ORDE_SERV)),                 
    RTRIM(LTRIM(@CSPO_DIST)),                     
    CONVERT(VARCHAR(1),@CSST_GRAV_NGRA),                        
    RTRIM(LTRIM(@CSFE_PAGO)),                    
    CONVERT(NUMERIC(15,6),@CNFA_CAMB_REND ),                
    RTRIM(LTRIM(@CSST_SUJE_DETR)),                
    RTRIM(LTRIM(@CSCO_ACTI_DETR))                         
    )                        
   END                       
    -----------------------------------------------------------------------------                        
                        
   If @@error <> 0                                
         Begin                                
     Close CU_TWDOCU_PROV_I01_02                                
     Deallocate CU_TWDOCU_PROV_I01_02                                
               rollback tran                                
         return                                
       End                              
                          
                        
Fetch  CU_TWDOCU_PROV_I01_02                               
Into @CNNU_FILA  ,  @CSCO_PROV  ,  @CSTI_DOCU ,  @CSNU_DOCU ,  @CSCO_MONE ,                            
 @CSFE_EMIS  , @CSCO_COND_PAGO,  @CSFE_VENC ,                            
 @CSFA_CAMB ,  @CSST_PROV ,  @CSTI_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
 @CSIM_INAF ,  @CSCO_IMPU,@CSIM_IMPU ,  @CSIM_TOTA ,  @CSCO_CNTA ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV     , @CSPO_DIST, @CSST_GRAV_NGRA, @CSFE_PAGO , @CNFA_CAMB_REND, @CSST_SUJE_DETR, @CSCO_ACTI_DETR                      
                          
End                          
                          
Close CU_TWDOCU_PROV_I01_02                              
Deallocate CU_TWDOCU_PROV_I01_02                   
                
                
SELECT @VNNU_ERRO_FINA = 0                  
                      
  SELECT @VNNU_ERRO_FINA = COUNT(*)                  
  FROM   #TWDOCU_ERRO_02                  
                    
  IF @VNNU_ERRO_FINA = 0                  
   BEGIN                   
    IF EXISTS (SELECT CO_PROV, TI_DOCU, NU_DOCU, SUM(convert(numeric(16,4),PO_DIST)) FROM #TWDOCU_ERRO_03                      
     GROUP BY CO_PROV, TI_DOCU, NU_DOCU                      
     HAVING SUM(convert(numeric(16,4),PO_DIST)) != 100 )                      
                         
     INSERT INTO #TWDOCU_ERRO_02 ( NU_FILA, CO_PROV, TI_DOCU,NU_DOCU, DE_ERRO )                                       
     SELECT MAX(NU_FILA), CO_PROV, TI_DOCU, NU_DOCU,                      
     'TOTAL DE DISTRIBUCION NO ES DEL 100%'                       
     FROM #TWDOCU_ERRO_03                      
     GROUP BY CO_PROV, TI_DOCU, NU_DOCU                      
     HAVING SUM(PO_DIST) != 100                    
    END                               
                          
                          
Commit Tran SP_TWDOCU_PROV_I01
GO
